In diesem Kapitel schauen wir uns HTTP-Secure an, besser bekannt als https beim Aufrufen von Webseiten. Alle TCP/IP-Schichten sind zunächst unverschlüsselt. Mit https wird nun zwischen der Anwendungs- und der Transportschicht ein weiteres Protokoll angewendet: SSL beziehungsweise TLS. Damit wird die gesamte Kommunikation von der Transportschicht abwärts verschlüsselt. Was ist nun https genau? HyperText Transfer Protocol Secure ist ein Kommunikationsprotokoll im World Wide Web, um Daten abhörsicher zu übertragen. Technisch definiert es als URI-Schema (eben https statt http) eine zusätzliche Schicht zwischen HTTP und TCP. HTTPS wurde von Netscape entwickelt und zusammen mit SSL 1.0 erstmals 1994 mit deren Browser veröffentlicht. Das HTTPS-Protokoll wird zur Verschlüsselung und zur Authentifizierung der Kommunikation zwischen Webserver und Browser im World Wide Web verwendet. Ohne eine solche Verschlüsselung sind Web-Daten für jeden als Klartext lesbar. Mittlerweile hat HTTPS das HTTP auf den meisten gängigen Webseiten abgelöst. Mit der zunehmenden Verbreitung von Funkverbindungen, die etwa an WLAN-Hotspots häufig unverschlüsselt ablaufen, nimmt die Bedeutung von HTTPS immer weiter zu, da damit die Inhalte unabhängig vom Netz verschlüsselt werden. Es stellt dabei das einzige Verschlüsselungsverfahren dar, das ohne gesonderte Softwareinstallation auf allen internetfähigen Computern unterstützt wird. Die Authentifizierung dient dazu, dass sich jede Seite der Verbindung vor dem Aufbau der Kommunikation der Identität des Verbindungspartners vergewissern kann. Dies ist ein Bedarf, der durch die steigende Zahl von Phishing-Angriffen ebenfalls wächst. Und was ist SSL beziehungsweise TLS? Transport Layer Security (TLS), besser bekannt unter der Vorgängerbezeichnung Secure Sockets Layer (SSL), ist ein hybrides Verschlüsselungsprotokoll zur sicheren Datenübertragung im Internet. Seit Version drei wird das SSL-Protokoll unter dem neuen Namen TLS weiterentwickelt und standardisiert, wobei Version eins von TLS der Version 3.1 von SSL entspricht. Bekannte Implementierungen des Protokolls sind Open-SSL und Gnu-TLS. TLS ist ohne eine zertifikatsbasierte Authentifizierung anfällig für Man-in-the-Middle-Angriffe: Ist der Man-in-the-Middle vor der Übergabe des Schlüssels aktiv, kann er beiden Seiten seine Schlüssel vorgaukeln und so den gesamten Datenverkehr im Klartext aufzeichnen und unbemerkt manipulieren. Wegen der mangelnden Vertrauenswürdigkeit einiger Zertifizierungsstellen wird seit Anfang 2010 die Sicherheit von TLS grundsätzlich angezweifelt. Was sind X.509-Zertifikate? X.509 ist ein ITU-T-Standard für eine Public-Key-Infrastruktur zum Erstellen digitaler Zertifikate. Die Entwicklung von X.509 setzt ein striktes hierarchisches System von vertrauenswürdigen Zertifizierungsstellen (certificate authority, CA) voraus, die Zertifikate erteilen können. Dieses Prinzip steht im Gegensatz zum Web-of-Trust-Modell, welches einen Graphen und nicht nur einen Baum darstellt und bei dem jeder ein Zertifikat „unterschreiben“ und damit seine Echtheit beglaubigen kann (vergleiche Open-PGP). Ein von einer Zertifizierungsstelle ausgestelltes digitales Zertifikat wird im X.509-System immer an einen „Distinguished Name“ oder einen „Alternative Name“ wie eine E-Mail-Adresse oder einen DNS-Eintrag gebunden. Nahezu alle Webbrowser beinhalten eine vorkonfigurierte Liste vertrauenswürdiger Zertifizierungsstellen, deren ausgestellten SSL-Zertifikaten der Browser vertraut. X.509 beinhaltet außerdem einen Standard, mittels dessen Zertifikate seitens der Zertifizierungsstelle wieder ungültig gemacht werden können, wenn deren Sicherheit nicht mehr gegeben ist, zum Beispiel nach dem öffentlichen Bekanntwerden des Private Keys für das Signieren von E-Mails. Die Zertifizierungsstelle kann hierfür ungültige Zertifikate in Zertifikatsperrlisten führen. Hier sehen Sie ein X.509-Zertifikat von VeriSign. Durch die grüne Farbe im Webbrowser wird die Vertrauenswürdigkeit angedeutet. Hier sehen Sie die Webseite der Kreissparkasse Reutlingen. Das kleine grüne verschlossene Schloss deutet auf ein gültiges Zertifikat hin. Zu jedem Zertifikat können Sie durch einen Klick zusätzliche Informationen abrufen. Hier sehen Sie diese Informationen. Wichtig dabei ist die durchgängig vertrauenswürdige Zertifikatshierarchie. Die Wurzel der Hierarchie muss eine vertrauenswürdige Certification Authority sein. Ein solches Zertifikat ist auch immer zeitlich begrenzt und muss vor Ablauf erneuert werden. Typisch dabei sind Zeiträume zwischen einem Monat und zwei Jahre. Hier finden Sie den Aufruf der Seite frankdopakta.de. Manche neueren Browser zeigen das gültige Zertifikat nicht mehr grün an. Der Anbieter Let's Encrypt bietet kostenlose Zertifikate an. Diese sind zwar nicht sehr lange gültig, nur jeweils drei Monate. Sie können sich aber automatisiert aktualisieren, so dass Sie als Administrator nicht ständig neue Zertifikate in den Webserver einspielen müssen.